#pragma once
#include "ComunicationWin7.h"
#include "ComunicationWin10.h"


typedef enum _CMD {
	CMD_TEST,//��ֹ��������֮�� �ظ�����
	CMD_GET_MOUDULE,
	CMD_READ_MEMORY,
	CMD_WRITE_MEMORY,
	CMD_QUERY_MEMORY,
	CMD_PROCESS_PROCESS,
	CMD_REMOTE_CALL
};

//读取模块参数
typedef struct _ModuleInfo {
	ULONG64 pid;
	ULONG64 moduleName;
	ULONG64 moduleBase;
	ULONG64 moduleSize;
}ModuleInfo,*PModuleInfo;

//读取进程内存参数

typedef struct _READWRITEINFO {
	ULONG64 pid;
	ULONG64 targetAddress;
	ULONG64 buffer;
	ULONG64 size;
}READWRITEINFO,*PREADWRITEINFO;

typedef struct _QUERYINFO {
	ULONG64 pid;
	ULONG64 targetAddress;
	ULONG64 memoryInfo;
}QUERYINFO, * PQUERYINFO;

typedef struct _PROTECTEDPROCESSINFO {
	ULONG64 pid;
}PROTECTEDPROCESSINFO, * PPROTECTEDPROCESSINFO;

typedef struct _REMOTECALLINFO {
	ULONG64 pid;
	ULONG64 shellCode;
	ULONG64 shellCodeSize;
}REMOTECALLINFO, * PREMOTECALLINFO;
EXTERN_C
NTSTATUS RegisterCommucationCallBack(CommCallbackProc callback);

EXTERN_C
VOID UnRegisterCommucationCallBack();